Summary

Attendees


Semester Sessions Attendees Unique
Spring 2015 7 93 52
Fall 2015 8 81 52
Fall 2016 10 75 50
Spring 2017 9 39 26
Fall 2017 4 11 9
Spring 2018 6 23 18
Summer 2018 6 69 32
Fall 2018 6 48 35
Spring 2019 8 58 32
Summer 2019 6 65 43
Fall 2019 10 46 28
Spring 2020 9 82 54
Fall 2020 10 77 42
Spring 2021 13 97 53
112 864 526
Session Offered Attendees Average
Python 10 130 13.00
Linux 14 128 9.14
R 8 86 10.75
Shell Basic 7 68 9.71
LURC 11 53 4.82
Machine Learning 4 53 13.25
Linux Intro 3 47 15.67
Python Visualization 6 43 7.17
R Visualization 5 41 8.20
LaTeX 7 35 5.00
MATLAB 6 34 5.67
SLURM 8 32 4.00
Shell Advanced 3 18 6.00
GIT 3 17 5.67
Python OOP 2 17 8.50
Storage 4 16 4.00
RDM 2 13 6.50
OnDemand 2 9 4.50
Text Mining 2 9 4.50
Shiny Apps 1 6 6.00
Python Data Structure 1 4 4.00
BYOS 1 3 3.00
Research Impact 1 1 1.00
Virtual Software 1 1 1.00

Attendees Status


Status Attendees Unique
Affiliate 14 6
Faculty 77 46
Faculty/Staff 216 111
Graduate Student 388 199
Undergraduate Student 169 93
864 455

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Spring 2015 7 93 23
Fall 2015 8 81 25
Fall 2016 10 75 28
Spring 2017 9 39 17
Fall 2017 4 11 6
Spring 2018 6 23 13
Summer 2018 6 69 20
Fall 2018 6 48 20
Spring 2019 8 58 26
Summer 2019 6 65 31
Fall 2019 10 46 20
Spring 2020 9 82 34
Fall 2020 10 77 30
Spring 2021 13 97 33
112 864 326
College Attendees Unique
CAS 182 103
CoB 72 38
CoE 23 12
LTS 94 49
Other 72 39
RCEAS 397 197
Undeclared 24 16
864 454

Summary

Attendees


Semester Sessions Attendees Unique
Fall 2021 8 25 21
8 25 21
Session Offered Attendees Average
Linux 1 8 8
LURC 1 6 6
R 1 5 5
Python Visualization 1 2 2
MATLAB 1 1 1
R Visualization 1 1 1
Shiny Apps 1 1 1
SLURM 1 1 1

Attendees Status


Status Attendees Unique
Faculty 3 3
Faculty/Staff 5 4
Graduate Student 12 9
Undergraduate Student 5 5
25 21

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Fall 2021 8 25 17
8 25 17
College Attendees Unique
CAS 6 5
CoB 1 1
CoE 2 1
CoH 1 1
Other 4 4
RCEAS 11 9
25 21

Summer 2022

Summary


Attendees by Session

Department/Majors represented by Attendees


Spring 2022

Summary


Attendees by Session

Department/Majors represented by Attendees


Fall 2021

Summary


Status Total Unique
Faculty 3 3
Faculty/Staff 5 4
Graduate Student 12 9
Undergraduate Student 5 5
25 21
Session Attendees
Linux 8
LURC 6
MATLAB 1
Python Visualization 2
R 5
R Visualization 1
Shiny Apps 1
SLURM 1

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
Linux 1 1 5 1
LURC 2 0 3 1
MATLAB 0 0 0 1
Python Visualization 0 1 1 0
R 0 2 1 2
R Visualization 0 0 1 0
Shiny Apps 0 1 0 0
SLURM 0 0 1 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 6 5
CoB 1 1
CoE 2 1
CoH 1 1
Other 4 4
RCEAS 11 9
25 21

Summary

Attendees


Semester Sessions Attendees Unique
Fall 2020 10 77 42
Spring 2021 13 97 53
23 174 95
Session Offered Attendees Average
Python 2 25 12.5
LURC 2 22 11.0
R Visualization 2 18 9.0
Machine Learning 2 16 8.0
R 2 16 8.0
Linux 2 15 7.5
Python Visualization 2 15 7.5
SLURM 2 15 7.5
OnDemand 2 9 4.5
Shiny Apps 1 6 6.0
Text Mining 1 6 6.0
LaTeX 1 4 4.0
Python Data Structure 1 4 4.0
BYOS 1 3 3.0

Attendees Status


Status Attendees Unique
Faculty 22 10
Faculty/Staff 23 14
Graduate Student 65 38
Undergraduate Student 64 29
174 91

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Fall 2020 10 77 30
Spring 2021 13 97 33
23 174 63
College Attendees Unique
CAS 17 11
CoB 26 11
CoE 3 1
LTS 7 4
Other 7 7
RCEAS 105 51
Undeclared 9 6
174 91

Spring 2021

Summary


Status Total Unique
Faculty 6 4
Faculty/Staff 11 9
Graduate Student 25 16
Undergraduate Student 55 24
97 53
Session Attendees
BYOS 3
LaTeX 4
Linux 10
LURC 10
Machine Learning 9
OnDemand 3
Python 16
Python Data Structure 4
Python Visualization 9
R 6
R Visualization 8
Shiny Apps 6
SLURM 9

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
BYOS 0 0 0 3
LaTeX 0 0 1 3
Linux 1 1 4 4
LURC 1 0 6 3
Machine Learning 0 1 0 8
OnDemand 0 0 1 2
Python 0 3 1 12
Python Data Structure 0 0 1 3
Python Visualization 0 0 3 6
R 1 2 0 3
R Visualization 1 2 2 3
Shiny Apps 1 2 2 1
SLURM 1 0 4 4

Department/Majors represented by Attendees


College Attendees Unique
CAS 8 5
CoB 7 7
CoE 3 1
LTS 2 1
Other 6 6
RCEAS 71 33
97 53

Fall 2020

Summary


Status Total Unique
Faculty 16 7
Faculty/Staff 12 6
Graduate Student 40 24
Undergraduate Student 9 5
77 42
Session Attendees
Linux 5
LURC 12
Machine Learning 7
OnDemand 6
Python 9
Python Visualization 6
R 10
R Visualization 10
SLURM 6
Text Mining 6

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
Linux 0 0 5 0
LURC 3 2 7 0
Machine Learning 1 1 3 2
OnDemand 1 0 5 0
Python 4 3 2 0
Python Visualization 1 2 2 1
R 1 2 5 2
R Visualization 3 0 4 3
SLURM 0 2 4 0
Text Mining 2 0 3 1

Department/Majors represented by Attendees


College Attendees Unique
CAS 9 7
CoB 19 6
LTS 5 3
Other 1 1
RCEAS 34 19
Undeclared 9 6
77 42

Summary

Attendees


Semester Sessions Attendees Unique
Fall 2019 10 46 28
Spring 2020 9 82 54
19 128 82
Session Offered Attendees Average
Machine Learning 2 37 18.5
Python OOP 2 17 8.5
Python 2 15 7.5
R Visualization 1 11 11.0
R 1 10 10.0
Linux 2 9 4.5
LURC 2 6 3.0
Shell Basic 1 5 5.0
SLURM 1 5 5.0
Python Visualization 1 4 4.0
Text Mining 1 3 3.0
GIT 1 2 2.0
LaTeX 1 2 2.0
MATLAB 1 2 2.0

Attendees Status


Status Attendees Unique
Affiliate 7 2
Faculty 13 8
Faculty/Staff 23 15
Graduate Student 65 41
Undergraduate Student 20 15
128 81

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Fall 2019 10 46 20
Spring 2020 9 82 34
19 128 54
College Attendees Unique
CAS 27 16
CoB 13 10
CoE 3 2
LTS 9 4
Other 16 10
RCEAS 60 39
128 81

Spring 2020

Summary


Status Total Unique
Affiliate 7 2
Faculty 9 5
Faculty/Staff 17 12
Graduate Student 38 27
Undergraduate Student 11 8
82 54
Session Attendees
Linux 4
LURC 5
Machine Learning 28
Python 7
Python OOP 8
Python Visualization 4
R 10
R Visualization 11
SLURM 5

Attendees by Session

Session Affiliate Faculty Faculty/Staff Graduate Student Undergraduate Student
Linux 0 0 1 3 0
LURC 0 0 0 4 1
Machine Learning 2 4 6 12 4
Python 1 0 1 4 1
Python OOP 0 3 0 3 2
Python Visualization 1 0 2 1 0
R 1 0 4 3 2
R Visualization 2 2 3 3 1
SLURM 0 0 0 5 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 18 11
CoB 12 9
LTS 5 3
Other 15 9
RCEAS 32 22
82 54

Fall 2019

Summary


Status Total Unique
Faculty 4 3
Faculty/Staff 6 4
Graduate Student 27 14
Undergraduate Student 9 7
46 28
Session Attendees
GIT 2
LaTeX 2
Linux 5
LURC 1
Machine Learning 9
MATLAB 2
Python 8
Python OOP 9
Shell Basic 5
Text Mining 3

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
GIT 0 1 1 0
LaTeX 0 0 2 0
Linux 0 1 3 1
LURC 0 0 0 1
Machine Learning 2 1 3 3
MATLAB 0 0 0 2
Python 0 0 7 1
Python OOP 1 2 6 0
Shell Basic 0 1 4 0
Text Mining 1 0 1 1

Department/Majors represented by Attendees


College Attendees Unique
CAS 9 5
CoB 1 1
CoE 3 2
LTS 4 2
Other 1 1
RCEAS 28 17
46 28

Summary

Attendees


Semester Sessions Attendees Unique
Fall 2018 6 48 35
Spring 2019 8 58 32
Summer 2019 6 65 43
20 171 110
Session Offered Attendees Average
Python 3 53 17.67
Python Visualization 3 24 8.00
R 2 21 10.50
LaTeX 3 19 6.33
Linux 3 19 6.33
GIT 1 12 12.00
R Visualization 1 8 8.00
LURC 2 7 3.50
Shell Basic 1 6 6.00
SLURM 1 2 2.00

Attendees Status


Status Attendees Unique
Affiliate 6 3
Faculty 11 8
Faculty/Staff 56 37
Graduate Student 65 33
Undergraduate Student 33 20
171 101

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Fall 2018 6 48 20
Spring 2019 8 58 26
Summer 2019 6 65 31
20 171 77
College Attendees Unique
CAS 35 21
CoB 15 8
CoE 8 5
LTS 26 20
Other 22 10
RCEAS 65 38
171 102

Summer 2019

Summary


Status Total Unique
Affiliate 3 2
Faculty 5 3
Faculty/Staff 21 17
Graduate Student 18 11
Undergraduate Student 18 10
65 43
Session Attendees
LaTeX 11
Linux 5
Python 24
Python Visualization 10
R 9
Shell Basic 6

Attendees by Session

Session Affiliate Faculty Faculty/Staff Graduate Student Undergraduate Student
LaTeX 0 0 6 1 4
Linux 1 0 0 0 4
Python 1 1 11 7 4
Python Visualization 1 1 2 5 1
R 0 3 1 4 1
Shell Basic 0 0 1 1 4

Department/Majors represented by Attendees


College Attendees Unique
CAS 13 9
CoB 4 2
CoE 3 3
LTS 7 7
Other 10 5
RCEAS 28 17
65 43

Spring 2019

Summary


Status Total Unique
Faculty 2 2
Faculty/Staff 9 7
Graduate Student 36 15
Undergraduate Student 11 8
58 32
Session Attendees
LaTeX 5
Linux 8
LURC 4
Python 14
Python Visualization 5
R 12
R Visualization 8
SLURM 2

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
LaTeX 1 2 2 0
Linux 0 0 4 4
LURC 0 0 4 0
Python 1 3 5 5
Python Visualization 0 1 3 1
R 0 1 11 0
R Visualization 0 1 6 1
SLURM 0 1 1 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 18 9
CoB 6 4
CoE 5 2
LTS 5 4
Other 3 2
RCEAS 21 11
58 32

Fall 2018

Summary


Status Total Unique
Affiliate 3 2
Faculty 4 3
Faculty/Staff 26 18
Graduate Student 11 10
Undergraduate Student 4 2
48 35
Session Attendees
GIT 12
LaTeX 3
Linux 6
LURC 3
Python 15
Python Visualization 9

Attendees by Session

Session Affiliate Faculty Faculty/Staff Graduate Student Undergraduate Student
GIT 0 1 10 0 1
LaTeX 0 0 3 0 0
Linux 0 0 2 3 1
LURC 1 0 1 0 1
Python 1 2 6 5 1
Python Visualization 1 1 4 3 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 4 4
CoB 5 3
LTS 14 13
Other 9 4
RCEAS 16 11
48 35

Summary

Attendees


Semester Sessions Attendees Unique
Fall 2017 4 11 9
Spring 2018 6 23 18
Summer 2018 6 69 32
16 103 59
Session Offered Attendees Average
Linux 3 21 7.0
Python 2 20 10.0
R 2 19 9.5
Shell Basic 1 12 12.0
Shell Advanced 1 8 8.0
MATLAB 1 6 6.0
LaTeX 1 5 5.0
LURC 1 4 4.0
R Visualization 1 4 4.0
SLURM 2 3 1.5
Virtual Software 1 1 1.0

Attendees Status


Status Attendees Unique
Faculty 8 6
Faculty/Staff 23 16
Graduate Student 46 21
Undergraduate Student 26 14
103 57

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Fall 2017 4 11 6
Spring 2018 6 23 13
Summer 2018 6 69 20
16 103 39
College Attendees Unique
CAS 29 16
CoB 9 6
CoE 3 1
LTS 8 7
Other 13 8
RCEAS 41 19
103 57

Summer 2018

Summary


Status Total Unique
Faculty 7 6
Faculty/Staff 12 5
Graduate Student 26 9
Undergraduate Student 24 12
69 32
Session Attendees
Linux 15
MATLAB 6
Python 14
R 14
Shell Advanced 8
Shell Basic 12

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
Linux 1 2 3 9
MATLAB 0 1 3 2
Python 2 4 6 2
R 3 2 6 3
Shell Advanced 0 2 3 3
Shell Basic 1 1 5 5

Department/Majors represented by Attendees


College Attendees Unique
CAS 27 15
CoB 7 4
CoE 3 1
LTS 2 1
Other 8 3
RCEAS 22 8
69 32

Spring 2018

Summary


Status Total Unique
Faculty 1 1
Faculty/Staff 5 5
Graduate Student 15 10
Undergraduate Student 2 2
23 18
Session Attendees
LaTeX 5
Linux 4
LURC 4
R 5
R Visualization 4
SLURM 1

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
LaTeX 0 0 5 0
Linux 0 1 3 0
LURC 0 1 3 0
R 1 1 1 2
R Visualization 0 2 2 0
SLURM 0 0 1 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 2 1
CoB 2 2
LTS 1 1
Other 4 4
RCEAS 14 10
23 18

Fall 2017

Summary


Status Total Unique
Faculty/Staff 6 6
Graduate Student 5 3
11 9
Session Attendees
Linux 2
Python 6
SLURM 2
Virtual Software 1

Attendees by Session

Session Faculty/Staff Graduate Student
Linux 0 2
Python 5 1
SLURM 0 2
Virtual Software 1 0

Department/Majors represented by Attendees


College Attendees Unique
LTS 5 5
Other 1 1
RCEAS 5 3
11 9

Summary

Attendees


Semester Sessions Attendees Unique
Fall 2016 10 75 50
Spring 2017 9 39 26
19 114 76
Session Offered Attendees Average
Linux 2 20 10.0
Python 1 17 17.0
MATLAB 2 15 7.5
RDM 2 13 6.5
Shell Basic 2 12 6.0
Linux Intro 1 10 10.0
SLURM 2 7 3.5
LURC 2 6 3.0
LaTeX 1 5 5.0
Storage 2 5 2.5
GIT 1 3 3.0
Research Impact 1 1 1.0

Attendees Status


Status Attendees Unique
Faculty 7 6
Faculty/Staff 42 25
Graduate Student 49 26
Undergraduate Student 16 12
114 69

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Fall 2016 10 75 28
Spring 2017 9 39 17
19 114 45
College Attendees Unique
CAS 29 20
CoB 8 3
CoE 4 3
LTS 26 15
Other 7 5
RCEAS 37 20
Undeclared 3 3
114 69

Spring 2017

Summary


Status Total Unique
Faculty 3 3
Faculty/Staff 12 8
Graduate Student 20 11
Undergraduate Student 4 4
39 26
Session Attendees
GIT 3
LaTeX 5
Linux 6
LURC 4
MATLAB 5
RDM 4
Shell Basic 6
SLURM 5
Storage 1

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
GIT 1 2 0 0
LaTeX 0 2 3 0
Linux 0 1 4 1
LURC 0 0 3 1
MATLAB 1 2 2 0
RDM 1 0 1 2
Shell Basic 0 3 3 0
SLURM 0 1 4 0
Storage 0 1 0 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 8 8
CoB 2 2
CoE 1 1
LTS 8 5
RCEAS 19 9
Undeclared 1 1
39 26

Fall 2016

Summary


Status Total Unique
Faculty 4 4
Faculty/Staff 30 20
Graduate Student 29 18
Undergraduate Student 12 8
75 50
Session Attendees
Linux 14
Linux Intro 10
LURC 2
MATLAB 10
Python 17
RDM 9
Research Impact 1
Shell Basic 6
SLURM 2
Storage 4

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
Linux 0 3 6 5
Linux Intro 0 2 6 2
LURC 0 1 1 0
MATLAB 0 4 3 3
Python 1 10 4 2
RDM 2 4 3 0
Research Impact 0 0 1 0
Shell Basic 1 3 2 0
SLURM 0 0 2 0
Storage 0 3 1 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 21 14
CoB 6 3
CoE 3 2
LTS 18 13
Other 7 5
RCEAS 18 11
Undeclared 2 2
75 50

Summary

Attendees


Semester Sessions Attendees Unique
Fall 2015 8 81 52
8 81 52
Session Offered Attendees Average
Linux 1 22 22
R 1 20 20
Shell Basic 1 13 13
Linux Intro 1 8 8
LURC 1 6 6
Shell Advanced 1 6 6
Storage 1 4 4
MATLAB 1 2 2

Attendees Status


Status Attendees Unique
Affiliate 1 1
Faculty 6 5
Faculty/Staff 28 16
Graduate Student 43 28
Undergraduate Student 3 2
81 52

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Fall 2015 8 81 25
8 81 25
College Attendees Unique
CAS 31 20
CoB 1 1
CoE 2 2
LTS 13 10
Other 2 2
RCEAS 29 15
Undeclared 3 2
81 52

Fall 2015

Summary


Status Total Unique
Affiliate 1 1
Faculty 6 5
Faculty/Staff 28 16
Graduate Student 43 28
Undergraduate Student 3 2
81 52
Session Attendees
Linux 22
Linux Intro 8
LURC 6
MATLAB 2
R 20
Shell Advanced 6
Shell Basic 13
Storage 4

Attendees by Session

Session Affiliate Faculty Faculty/Staff Graduate Student Undergraduate Student
Linux 1 1 7 12 1
Linux Intro 0 0 2 5 1
LURC 0 0 3 3 0
MATLAB 0 0 2 0 0
R 0 3 8 8 1
Shell Advanced 0 1 1 4 0
Shell Basic 0 0 3 10 0
Storage 0 1 2 1 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 31 20
CoB 1 1
CoE 2 2
LTS 13 10
Other 2 2
RCEAS 29 15
Undeclared 3 2
81 52

Summary

Attendees


Semester Sessions Attendees Unique
Spring 2015 7 93 52
7 93 52
Session Offered Attendees Average
Linux Intro 1 29 29
Linux 1 22 22
Shell Basic 1 20 20
MATLAB 1 9 9
Storage 1 7 7
Shell Advanced 1 4 4
LURC 1 2 2

Attendees Status


Status Attendees Unique
Faculty 10 7
Faculty/Staff 21 9
Graduate Student 55 32
Undergraduate Student 7 4
93 52

Attendees per Session

Departments/Majors represented by Attendees


Semester Sessions Attendees Department
Spring 2015 7 93 23
7 93 23
College Attendees Unique
CAS 14 8
LTS 5 5
Other 5 1
RCEAS 60 33
Undeclared 9 5
93 52

Spring 2015

Summary


Status Total Unique
Faculty 10 7
Faculty/Staff 21 9
Graduate Student 55 32
Undergraduate Student 7 4
93 52
Session Attendees
Linux 22
Linux Intro 29
LURC 2
MATLAB 9
Shell Advanced 4
Shell Basic 20
Storage 7

Attendees by Session

Session Faculty Faculty/Staff Graduate Student Undergraduate Student
Linux 1 4 14 3
Linux Intro 3 7 16 3
LURC 1 1 0 0
MATLAB 2 1 6 0
Shell Advanced 1 1 2 0
Shell Basic 1 4 14 1
Storage 1 3 3 0

Department/Majors represented by Attendees


College Attendees Unique
CAS 14 8
LTS 5 5
Other 5 1
RCEAS 60 33
Undeclared 9 5
93 52
---
title: "HPC Training"
output: 
   flexdashboard::flex_dashboard:
      source: embed
---

```{r setup, include=FALSE}
suppressMessages(library(tidyverse))
library(googlesheets4)
library(knitr)
library(plotly)
library(DT)
library(googledrive)

# Function to rename CBE to CoB
cbe2cob <- function(data){
  data %>% mutate_if(is.character, str_replace_all, pattern = "CBE", replacement = "CoB")  
}

# Using new googlesheet API
options(gargle_oauth_email = "alp514@lehigh.edu")
#f21 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Fall 2021!A7:Q28")
#s21 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Spring 2021!A7:S18")
#f20 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Fall 2020!A7:P49")
#s20 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Spring 2020!A7:N61") %>% cbe2cob()
#f19 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Fall 2019!A7:P35") %>% cbe2cob()
#u19 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Summer 2019!A7:K50") %>% cbe2cob()
#s19 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Spring 2019!A6:M38") %>% cbe2cob()
#f18 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Fall 2018!A6:L41") %>% cbe2cob()
#u18 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Summer 2018!A6:K38") %>% cbe2cob()
#s18 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Spring 2018!A6:K24") %>% cbe2cob()
#f17 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Fall 2017!A6:L15") %>% cbe2cob()
#s17 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Spring 2017!A6:N32") %>% cbe2cob()
#f16 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Fall 2016!A6:P56") %>% cbe2cob()
#f15 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Fall 2015!A6:M58") %>% cbe2cob()
#s15 <- read_sheet("1GUx4sLiaCcGQPkhrfetoagsCIJ_SUHvfSR62NtpMI1I",range = "Spring 2015!A6:L58") %>% cbe2cob()
# read using old googlesheet API 
#usage <- gs_title("Training Attendance")
#f20 <- usage %>% gs_read("Fall 2020",range = "A7:P27",col_types = cols())
#s20 <- usage %>% gs_read("Spring 2020",range = "A7:N61",col_types = cols())
#f19 <- usage %>% gs_read("Fall 2019",range = "A7:P35",col_types = cols())
#u19 <- usage %>% gs_read("Summer 2019",range = "A7:K50",col_types = cols())
#s19 <- usage %>% gs_read("Spring 2019",range = "A6:M38",col_types = cols())
#f18 <- usage %>% gs_read("Fall 2018",range = "A6:L41",col_types = cols())
#u18 <- usage %>% gs_read("Summer 2018",range = "A6:K38",col_types = cols(), progress = F)
#s18 <- usage %>% gs_read("Spring 2018",range = "A6:K24",col_types = cols(), progress = F)
#f17 <- usage %>% gs_read("Fall 2017",range = "A6:L15",col_types = cols())
#s17 <- usage %>% gs_read("Spring 2017",range = "A6:N32",col_types = cols())
#f16 <- usage %>% gs_read("Fall 2016",range = "A6:P56",col_types = cols())
#f15 <- usage %>% gs_read("Fall 2015",range = "A6:M58",col_types = cols())
#s15 <- usage %>% gs_read("Spring 2015",range = "A6:L58",col_types = cols())

#f21[is.na(f21)] <- 0
#s21[is.na(s21)] <- 0
#f20[is.na(f20)] <- 0
#s20[is.na(s20)] <- 0
#f19[is.na(f19)] <- 0
#u19[is.na(u19)] <- 0
#s19[is.na(s19)] <- 0
#f18[is.na(f18)] <- 0
#u18[is.na(u18)] <- 0
#s18[is.na(s18)] <- 0
#f17[is.na(f17)] <- 0
#s17[is.na(s17)] <- 0
#f16[is.na(f16)] <- 0
#f15[is.na(f15)] <- 0
#s15[is.na(s15)] <- 0


#f21 %>% select(Name,Department,College,Status,LURC:`Shiny Apps`) %>% 
#  gather(Session, Count, LURC:`Shiny Apps`) %>% 
#  mutate(Semester="Fall 2021",ID=15,AY="21-22",CY="2021") -> Fall2021
#s21 %>% select(Name,Department,College,Status,LURC:`Shiny Apps`) %>% 
#  gather(Session, Count, LURC:`Shiny Apps`) %>% 
#  mutate(Semester="Spring 2021",ID=14,AY="20-21") -> Spring2021
#f20 %>% select(Name,Department,College,Status,LURC:`Text Mining`) %>% 
#  gather(Session, Count, LURC:`Text Mining`) %>% 
#  mutate(Semester="Fall 2020",ID=13,AY="20-21") -> Fall2020
#s20 %>% select(Name,Department,College,Status,LURC:`Machine Learning`) %>% 
#  gather(Session, Count, LURC:`Machine Learning`) %>% 
#  mutate(Semester="Spring 2020",ID=12,AY="19-20") -> Spring2020
#f19 %>% select(Name,Department,College,Status,LURC:`Text Mining`) %>% 
#  gather(Session, Count, LURC:`Text Mining`) %>% 
#  mutate(Semester="Fall 2019",ID=11,AY="19-20") -> Fall2019
#u19 %>% select(Name,Department,College,Status,Linux:`Python Visualization`) %>% 
#  gather(Session, Count, Linux:`Python Visualization`) %>% 
#  mutate(Semester="Summer 2019",ID=10,AY="18-19") -> Summer2019
#s19 %>% select(Name,Department,College,Status,Linux:`Python Visualization`) %>% 
#  gather(Session, Count, Linux:`Python Visualization`) %>% 
#  mutate(Semester="Spring 2019",ID=9,AY="18-19") -> Spring2019
#f18 %>% select(Name,Department,College,Status,Linux:`Python Visualization`) %>% 
#  gather(Session, Count, Linux:`Python Visualization`) %>% 
#  mutate(Semester="Fall 2018",ID=8,AY="18-19") -> Fall2018
#u18 %>% select(Name,Department,College,Status,Linux:MATLAB) %>% 
#  gather(Session, Count, Linux:MATLAB) %>% 
#  mutate(Semester="Summer 2018",ID=7,AY="17-18") -> Summer2018
#s18 %>% select(Name,Department,College,Status,Linux:`R Visualization`) %>% 
#  gather(Session, Count, Linux:`R Visualization`) %>% 
#  mutate(Semester="Spring 2018",ID=6,AY="17-18") -> Spring2018
#f17 %>% select(Name,Department,College,Status,LURC:LaTeX) %>% 
#  gather(Session, Count, LURC:LaTeX) %>% 
#  mutate(Semester="Fall 2017",ID=5,AY="17-18") -> Fall2017
#s17 %>% select(Name,Department,College,Status,LURC:LaTeX) %>% 
#  gather(Session, Count, LURC:LaTeX) %>%
#  mutate(Semester="Spring 2017",ID=4,AY="16-17") -> Spring2017
#f16 %>% select(Name,Department,College,Status,`Linux Intro`:Python) %>% 
#  gather(Session, Count, `Linux Intro`:Python) %>%
#  mutate(Semester="Fall 2016",ID=3,AY="16-17") -> Fall2016
#f15 %>% select(Name,Department,College,Status,Storage:R) %>% 
#  gather(Session, Count, Storage:R) %>%
#  mutate(Semester="Fall 2015",ID=2,AY="15-16") -> Fall2015
#s15 %>% select(Name,Department,College,Status,LURC:MATLAB) %>% 
#  gather(Session, Count, LURC:MATLAB) %>%
#  mutate(Semester="Spring 2015",ID=1,AY="14-15") -> Spring2015

Fall2021 <- read_csv("archive/2021-fall.csv")
Spring2021 <- read_csv("archive/2021-spring.csv")
Fall2020 <- read_csv("archive/2020-fall.csv")
Spring2020 <- read_csv("archive/2020-spring.csv")
Fall2019 <- read_csv("archive/2019-fall.csv")
Summer2019 <- read_csv("archive/2019-summer.csv")
Spring2019 <- read_csv("archive/2019-spring.csv")
Fall2018 <- read_csv("archive/2018-fall.csv")
Summer2018 <- read_csv("archive/2018-summer.csv")
Spring2018 <- read_csv("archive/2018-spring.csv")
Fall2017 <- read_csv("archive/2017-fall.csv")
Spring2017 <- read_csv("archive/2017-spring.csv")
Fall2016 <- read_csv("archive/2016-fall.csv")
Fall2015 <- read_csv("archive/2015-fall.csv")
Spring2015 <- read_csv("archive/2015-spring.csv")

Attendance <- bind_rows(Spring2021,Fall2020,Spring2020,Fall2019,Summer2019,Spring2019,Fall2018,Summer2018,Spring2018,Fall2017,Spring2017,Fall2016,Fall2015,Spring2015)
Attendance1415 <- Spring2015
Attendance1516 <- Fall2015
Attendance1617 <- bind_rows(Spring2017,Fall2016)
Attendance1718 <- bind_rows(Summer2018,Spring2018,Fall2017)
Attendance1819 <- bind_rows(Summer2019,Spring2019,Fall2018)
Attendance1920 <- bind_rows(Spring2020,Fall2019)
Attendance2021 <- bind_rows(Spring2021,Fall2020)
Attendance2122 <- Fall2021

#write_csv(Attendance,"training.csv")
#write_csv(Spring2021,"archive/2021-spring.csv")
#write_csv(Fall2020,"archive/2020-fall.csv")
#write_csv(Spring2020,"archive/2020-spring.csv")
#write_csv(Fall2019,"archive/2019-fall.csv")
#write_csv(Summer2019,"archive/2019-summer.csv")
#write_csv(Spring2019,"archive/2019-spring.csv")
#write_csv(Fall2018,"archive/2018-fall.csv")
#write_csv(Summer2018,"archive/2018-summer.csv")
#write_csv(Spring2018,"archive/2018-spring.csv")
#write_csv(Fall2017,"archive/2017-fall.csv")
#write_csv(Spring2017,"archive/2017-spring.csv")
#write_csv(Fall2016,"archive/2016-fall.csv")
#write_csv(Fall2015,"archive/2015-fall.csv")
#write_csv(Spring2015,"archive/2015-spring.csv")
theme_set(theme_classic())
```

```{r deffunc}
summary_setup <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Semester,ID) %>%
    summarize(Total=sum(Count))
}

attendeetotal <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Semester,ID) %>%
    summarize(Sessions=sum(n_distinct(Session)),Attendees=sum(Count)) %>%
    arrange(ID)
}

attendeeunique <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Name,Semester,ID) %>%
    summarize(Unique=sum(n_distinct(Name))) %>%
    group_by(Semester,ID) %>%
    summarize(Unique=sum(Unique)) %>%
    arrange(ID)
}

attendeedesc <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Session) %>%
    summarize(Offered= sum(n_distinct(Semester)),Attendees=sum(Count)) %>%
    mutate(Average=round(Attendees/Offered,2)) %>%
    arrange(-Attendees)
}

attendeestatus <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Semester,Status,ID) %>%
    summarize(Total=sum(Count))
}

attendeesession <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Semester,Session,ID) %>%
    summarize(Total=sum(Count))
}

attendeedept <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Department) %>%
    summarize(Total=sum(Count))
}

attendeedeptunique <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Name,Department) %>%
    summarize(Unique=sum(n_distinct(Name))) %>%
    group_by(Department) %>%
    summarize(Unique=sum(Unique))
}

deptunique <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Department,Semester,ID) %>%
    summarize(Unique=sum(n_distinct(Department))) %>%
    group_by(Semester,ID) %>%
    summarize(Department=sum(Unique)) %>%
    arrange(ID)
}

depttotal <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Semester,ID) %>%
    count(Department) %>%
    summarize(Department=sum(n)) %>%
    arrange(ID)
}

attendeestatustotal <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Status) %>%
    summarize(Attendees=sum(Count))
}

attendeestatusunique <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Name,Status) %>%
    summarize(Unique=sum(n_distinct(Name))) %>%
    group_by(Status) %>%
    summarize(Unique=sum(Unique))
}

collegetotal <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(College) %>%
    summarize(Attendees=sum(Count)) 
}

collegeunique <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Name,College) %>%
    summarize(Unique=sum(n_distinct(Name))) %>%
    group_by(College) %>%
    summarize(Unique=sum(Unique))
}

sem_status <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Status) %>%
    summarize(Total=sum(Count))
}

sem_unique <- function(data) {
  data %>%
    filter(Count > 0) %>%
    group_by(Name,Status) %>%
    summarize(Total=n_distinct(Name)) %>%
    select(Status,Total) %>%
    group_by(Status) %>%
    summarize(Unique=n())
}

sem_attendee <- function(data,col_name1,col_name2) {
  col_name1 <- as.name(col_name1)
  col_name2 <- as.name(col_name2)
  data %>%
    filter(Count>0) %>%
    group_by_(col_name1,col_name2) %>%
    summarize(Attendees=sum(Count))
}

sem_attendee_session <- function(data) {
  data %>%
    filter(Count>0) %>%
    group_by(Session) %>%
    summarize(Attendees=sum(Count))
}

sem_attendee_dept <- function(data) {
  data %>%
    filter(Count > 0) %>%
    group_by(Department) %>%
    summarize(Total=n())
}
```

Summary {.storyboard}
=========================================


###  Attendees {data-commentary-width=400}

```{r summary_setup,eval=F}
Attendance %>% summary_setup %>%
  plot_ly(x = ~reorder(Semester,ID), y = ~Total, type = "bar", 
          name = "Total Number of Attendees per Semester") %>%
  layout(xaxis = list(title = 'Semester'), yaxis = list(title = '' ))
```


```{r summary_attendees,echo=F}
Attendance %>% attendeetotal -> Attendees_Total
Attendance %>% attendeeunique -> Attendees_Unique
full_join(Attendees_Total,Attendees_Unique) -> Attendance_Summary
plot_ly(data=Attendance_Summary, 
        x = ~reorder(Semester,ID), y = ~Attendees, 
        type = "bar", 
        name = "Total Attendees") %>%
    add_trace(y =  ~ Unique, name = "Unique Attendees") %>%
  layout(xaxis = list(title = 'Semester'), yaxis = list(title = '' ))
```

*** 

```{r summary_attendees_desc,echo=F}
Attendance %>% attendeetotal -> Attendees_Total
Attendance %>% attendeeunique -> Attendees_Unique
full_join(Attendees_Total,Attendees_Unique) %>% select(-ID) -> tmp
tmp1 <- tribble(
   ~Semester,~Sessions,~Attendees,~Unique,
   "",sum(tmp$Sessions),sum(tmp$Attendees),sum(tmp$Unique))
bind_rows(tmp,tmp1) %>% kable()

Attendance %>% attendeedesc %>% kable()
```

### Attendees Status

```{r summary_attendee_status,echo=F}
Attendance %>% attendeestatus %>%
  plot_ly(x = ~reorder(Semester,ID), y = ~Total, color = ~Status, type = "bar")%>%
  layout(xaxis = list(title = 'Semester'), yaxis = list(title = '' ))
```

***

```{r total_attendee_status,echo=F}
Attendance %>% attendeestatustotal -> total_attendee
Attendance %>% attendeestatusunique -> unique_attendee
full_join(total_attendee,unique_attendee) -> tmp 
add_row(tmp,Status="",Attendees=sum(tmp$Attendees),Unique=sum(tmp$Unique)) %>% kable()
```

### Attendees per Session

```{r summary_attendee_session,echo=F}
Attendance %>% attendeesession %>%
  plot_ly(x = ~reorder(Semester,ID), y = ~Total, color = ~Session, type = "bar")%>%
  layout(xaxis = list(title = 'Semester'), yaxis = list(title = '' ), barmode = 'stack')
```

### Departments/Majors represented by Attendees {data-commentary-width=600}


```{r summary_attendee_dept,echo=F}
Attendance %>% attendeedept -> tmp1
Attendance %>% attendeedeptunique -> tmp2
full_join(tmp2,tmp1) %>% datatable(options=list(pageLength = 15))
```

*** 

```{r summary_attendee,echo=F}
Attendance %>% deptunique -> Department_Unique
Attendance %>% depttotal -> Department_Total
full_join(Attendees_Total,Department_Unique) %>% 
  select(-ID) -> tmp
tmp1 <- tribble(
  ~Semester,~Sessions,~Attendees,~Department,
  "",sum(tmp$Sessions),sum(tmp$Attendees),sum(tmp$Department))
bind_rows(tmp,tmp1) %>% kable()
```

```{r summary_college,echo=F}
Attendance %>% collegetotal -> total_attendee
Attendance %>% collegeunique -> unique_attendee
full_join(total_attendee,unique_attendee) -> tmp 
add_row(tmp,College="",Attendees=sum(tmp$Attendees),Unique=sum(tmp$Unique)) %>% kable()
```

```{r child = "Rmds/ay2122.Rmd"}
```

```{r child = "Rmds/ay2021.Rmd"}
```

```{r child = "Rmds/ay1920.Rmd"}
```

```{r child = "Rmds/ay1819.Rmd"}
```

```{r child = "Rmds/ay1718.Rmd"}
```

```{r child = "Rmds/ay1617.Rmd"}
```

```{r child = "Rmds/ay1516.Rmd"}
```

```{r child = "Rmds/ay1415.Rmd"}
```